老板:你花了两天时间才加了两行代码?我:无语~
大家好,我是鸭哥。
老板:你花了两天时间才加了两行代码!?
说实话,上面的场景,不少同学应该都遇到过,而且不止一次。
说实话,老板,你以为我想这样吗?
在老板看起来很合理的问题其实并不是那么合理,老板一般都是这么认为的:
代码行数=工作量
代码行数=价值
所有的代码行都是一样的
我还能说什么呢?就TM这么离谱!
不过,这里就出现一个问题:为什么一个看起来很简单的bug,却需要花两天时间去修复呢?
在D哥看来,主要是以下几点原因。
1、在报告这个bug时,对如何复现该Bug的描述很模糊。一般我都要花几个小时才能复现,有的时候需要拉一个小群,去找报告该Bug的人提供更多的有用信息。其实大多数开发者不喜欢修复bug(毕竟这是个费力不讨好的活),不少人都会想方设法的摆脱这些锅,这时候便会说:信息不够!好家伙,让人觉得你在尽力的情况下又啥都不用做,这确实是个好借口~说实话,我太TM感谢那些报告错误的队友了,让我吃尽苦头!
2、所报告的bug涉及的功能模块,我不太熟悉。它涉及的功能我很少用,我也没有详细的了解过,那这不得花很多时间去了解细节吗?不然后面怎么搞呢?
3、因为时间都是花在找问题最根本的原因上了,又不是随便敷衍的!比如:某些代码抛出了一个错误,你可以直接用try...catch语句来搞定它。这样,系统便不会报错了,难道就真的没有问题了吗?就万事大吉?就这?不好意思,我觉得这是在坑其它队友。你敷衍一个错误说不定之后会出现更严重的错误,到时候你又和这个升级版的错误相见了,让你刺激的流鼻血!
4、因为我还调研了有没有其它的方法来解决这个问题,而不仅仅是报告中的bug。一套复现步骤很容易使错误看起来都出现在一个地方,但是实际上它可能是更深层次的。这就一定要找到问题的确切原因,然后查看所有方法,说不定你就产生了一个非常妙的解决方案呢?就比如,代码的实际使用情况,可能有其他地方可能有(其他的)问题要解决,或者它可能显示代码中的不一致,这就意味着错误是在一个代码路径中引起的,而不是在另一个代码路径中。
5、因为我花了好多时间来验证代码中是不是也有其他部分可能受到这种类似的影响。如果一个错误导致了这个错误,那同样的错误到处都能发生,那还不赶紧解决?
6、因为当我找到问题的原因的时候,我还希望尽量找个简单点的方法来修复,把出事故的风险降到最低。速度都是其次的,我就想好好的修复它,就是不想给自己(或队友)挖坑。
7、因为我彻底测试了更改并验证它解决了所有受影响的不同代码路径的问题。别人测试我信不过,我可不想以后发现了一个错误又让我放下手里的事情重新回来弄,这种感觉有多么的崩溃,老板是永远都不能体会的!而且我不想让测试下次再看到出相同的问题!
说了这么多,我还是要说一句:我不喜欢修复bug。有个原因想必大家都懂吧?修复bug不就是暴露我之前做的不行吗?男人不能说自己不行!嗯!还有就是,我真不喜欢修复bug,有这时间去探索其它领域不香吗?
世界上最可怕的事情就是你不得不修复一个bug,尤其是让你来来回回上上下下反反复复就修复同一个bug,真的绝了!
所以,我们花大量的时间是必须的,一旦彻底的消灭bug之后,就不必再一直和它碰面,也不用再分析、修复和测试了!
最后,各位同学,有没有遇到这种情况?
有同学鸭哥说,现在进大厂太了!鸭哥特意邀请了华为、腾讯、阿里的朋友进群,与大家一起交流经验,一起成长技术。
有兴趣入群的,可以长扫点击区域二维码,一定要注意:城市+选择名称+技术,根据格式,可以更快地通过方向内容进入群。
▲长按扫描
1、离职了,再见!
我就知道你会点赞+“在看”